Hand-held scanning devices are portable imaging devices that generate machine-readable image data (sometimes referred to herein simply as image data) representing an image of an object. Generating image data representative of an object is sometimes referred to as "imaging" or "scanning" the object. Some scanning devices generate image data representing a narrow "scan line" portion of the object being imaged. During the imaging process, the scanning device is moved relative to the object being imaged. As the scanning device is moved relative to the object, it generates image data representing a plurality of sequential scan line portions of the image of the object. The image of the object is, accordingly, represented by the image data of the cumulation of sequential scan lines similar to the image of the object represented by a video display.
The image of the scan line portion of the object is focused onto a linear array of photodetector elements (sometimes referred to herein simply as photodetectors). The photodetectors may, as an example, be mounted to a plurality of electronic segments such as contact image sensors as are known in the art. The photodetectors may also be etched into a single semiconductor as is common in a charge-coupled device. The individual photodetectors generate image data representing discrete portions of the image of the scan line portion of the object. The image data may, as an example, be voltage values that correspond to the intensity of light received by the photodetectors. For example, photodetectors that receive relatively high intensities of light may output relatively high voltages and photodetectors that receive relatively low intensities of light may output relatively low voltages.
The image data is output from the photodetectors to a processor. One of the functions of the processor is to create a data base that indicates the position on the image of the object from where each scan line was generated. The data stored in the data base and the image data are used by the processor to replicate the image of the object. As an example, in the situation where the scanning device is generating image data representing a two-dimensional object, such as text located on a piece of paper, the hand-held scanning device may be moved in any direction on the paper. Accordingly, the scan line portions may be generated from virtually any location on the paper, which leads to the image data representing the image of the object consisting of a plurality of scan line portions that may be skewed over the surface of the object. In order to replicate the image of the object, the hand held scanning device uses the data stored in the data base to determine the proper placement of the scan line portions of the image of the object when the image is replicated. The processor may then create an electronic image of the object by known processing techniques, e.g., stitching software.
A problem replicating the image of the object may be encountered if the velocity of the scanning device relative to the object becomes unknown during the scanning process. For example, if the scanning device is imaging one thousand scan line portions of the image of the object per second and the scanning device is moving along a single axis at a constant rate of one inch per second relative to the object, each scan line represents one one-thousandth of an inch of the image of the object. If the correct velocity of the scanning device relative to the object has been conveyed to the processor, the processor will create a data base indicating that each scan line represents one one-thousandth of and inch of the image of the object. Based on the image data and the data stored in the data base, the processor may accurately replicate the image of the object. If, however, the velocity of the scanning device relative to the object is decreased and the decreased velocity is not conveyed to the processor, the processor will continue to process the image data as though each scan line represents one one-thousandth of an inch of the object. Each scan line, however, will represent less than one one-thousandth of an inch of the object. Accordingly, the image of the object will be distorted. If, on the other hand, the velocity of the scanning device relative to the object is increased and the increased velocity is not conveyed to the processor, the image of the object will be stretched.
It is extremely difficult, if not impossible, to accurately replicate an image of an object when either the velocity or position of the scanning device relative to the object becomes unknown. If either the position or velocity is not known, the processor will not know where the scanning device is located relative to the object as the scan lines are being generated. Accordingly, the processor will not be able to properly place the scan line portions relative to each other so as to accurately replicate the image of the object. This problem is exacerbated in hand-held scanning devices where the scan lines may be generated from anywhere on the object and are often skewed.
In order to overcome this positioning problem, some scanning devices use position sensors to detect the location of the scanning device relative to the object as the scan lines are being generated. The position sensors output position information pertaining to the position of the scanning device relative to the object as scan line portions are being generated. This position information is conveyed to the processor where it is incorporated into the above-described data base.
One example of a position sensor is an optical sensor affixed to the scanning device that periodically generates image data from a small two-dimensional area of the object being scanned. A processor receives this image data and identifies distinct features on the object. In the example where the object is text printed on a sheet of paper, the distinct features may be inherent irregularities in the surface of the paper. The positions of these distinct features relative to the optical sensor are stored in a memory device. As the scanning device is moved relative to the object, the positions of these distinct features move relative to the optical sensor. The processor compares the new positions of these distinct features to the positions stored in the memory device. Based on these comparisons, the processor is able to determine the position, direction of movement, and velocity of the scanning device to which the optical sensor is affixed relative to the object. Accordingly, the processor is able to create the above-described data base because the locations of the scan line portions of the image of the object relative to each other may be readily determined.
Some scanning devices may have several of these two-dimensional optical sensors located at fixed locations relative to the linear array of photodetectors. In some scanning devices, an optical sensor is spaced a distance from each end of the linear array of photodetectors and are, thus, located outside of the linear array of photodetectors. These locations of the optical sensors present problems when a user operates the scanning device in the vicinity of the edge of the object, i.e., text near the edge of a sheet of paper. As the linear array of photodetectors images the edge of the paper, the optical sensor nearest the edge of the paper may inadvertently be moved off the paper and onto another surface that supports the paper, e.g., a desk top. If the optical sensor is unable to detect distinct features on the other surface or if the paper moves relative to the other surface, the processor will not know the position of the scanning device relative to the paper. Accordingly, the text on the paper will not be able to be replicated by the processor. This placement of the optical sensors has another disadvantage in that it increases the length of the scanning device by the distance the optical sensors are spaced from each end of the linear array of photodetectors. This increased length of the scanning device is inherently detrimental to a hand-held scanning device.
Some other scanning devices space the optical sensors a distance above or below the linear array of photodetectors. This location of the optical sensors causes the width of the hand-held scanning device to be increased, which, as with the increased length of a hand-held scanning device, is inherently detrimental. The wider hand-held scanning device also presents a problem because a user may not know from where on the object the scan line portions are being generated. As an example, a user scanning a page of text may not properly position the scanning device relative to the text and may inadvertently not image a portion of the text. An additional problem, as described above, may be encountered if the optical sensors are moved off the page and onto another surface. As with the above-described scanning device, the optical sensors may not be able to detect distinct features on this surface, which will cause errors when the image data is processed. Specifically, the positions of the scan lines will not be accurately determined, which will cause errors when the processor attempts to replicate the image of the page.
Therefore, a need exists for a hand-held scanning device that is able to determine its position relative to an object being imaged wherein the length and width of the scanning device are minimized.